前言:
Virtualservice 應用實例
- 針對Virtualservice一對一gateway不分流的方式以下提供一個簡單範例,範例分為兩部分一部分是Gateway一部分為Virtualservice如下:
Gateway
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: test-gateway #會對應下面使用的Vertaulservice
spec:
selector:
istio: test-gateway # Istio gateway implementation
servers:
- port:
number: 443
name: https
protocol: HTTPS
tls:
mode: SIMPLE
serverCertificate: /etc/istio/ingressgateway-certs/tls.crt #設定自簽憑證
privateKey: /etc/istio/ingressgateway-certs/tls.key #設定自簽憑證
hosts:
- "*" #也可使用整網域名(FQDN)
- port:
number: 80
name: http
protocol: HTTP
hosts:
- "www.test.com" #只允許此網址當作入口
Virtualservice
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: vs-test #名稱
spec:
hosts:
www.test.com #這邊使用完整網域名(FQDN)
gateways:
test-gateway #istio-ingressgateway name
http:
- route:
- destination:
port:
number: 80
host: realTestService #導向得service
結論:
- 透過Virtualservice可做到的事情可以是非常多的,從網路的路由分流甚至,是使用金絲雀以百分比的方式去做服務流量的轉導,還有可以去做到限制流量的作用,這即是Istio中很強大的部分。